summaryrefslogtreecommitdiff
path: root/app/[lng]/procurement/(procurement)/b-rfq/[id]/layout.tsx
blob: d683643724a8c7242383fc9f89d8029e55c5dddc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
import { Metadata } from "next"
import Link from "next/link"
import { Separator } from "@/components/ui/separator"
import { SidebarNav } from "@/components/layout/sidebar-nav"
import { formatDate } from "@/lib/utils"
import { Button } from "@/components/ui/button"
import { ArrowLeft } from "lucide-react"
import { RfqDashboardView } from "@/db/schema"
import { findBRfqById } from "@/lib/b-rfq/service"

export const metadata: Metadata = {
  title: "견적 RFQ 상세",
}

export default async function RfqLayout({
  children,
  params,
}: {
  children: React.ReactNode
  params: { lng: string, id: string }
}) {

  // 1) URL 파라미터에서 id 추출, Number로 변환
  const resolvedParams = await params
  const lng = resolvedParams.lng
  const id = resolvedParams.id

  const idAsNumber = Number(id)
  // 2) DB에서 해당 협력업체 정보 조회
  const rfq: RfqDashboardView | null = await findBRfqById(idAsNumber)

  // 3) 사이드바 메뉴
  const sidebarNavItems = [
    {
      title: "견적/입찰 문서관리",
      href: `/${lng}/evcp/b-rfq/${id}`,
    },
    {
      title: "Initial RFQ 발송",
      href: `/${lng}/evcp/b-rfq/${id}/initial`,
    },
    {
      title: "Final RFQ 발송",
      href: `/${lng}/evcp/b-rfq/${id}/final`,
    },

  ]

  return (
    <>
      <div className="container py-6">
        <section className="overflow-hidden rounded-[0.5rem] border bg-background shadow">
          <div className="hidden space-y-6 p-10 pb-16 md:block">
          <div className="flex items-center justify-end mb-4">
              <Link href={`/${lng}/evcp/b-rfq`} passHref>
                <Button variant="ghost" className="flex items-center text-primary hover:text-primary/80 transition-colors p-0 h-auto">
                  <ArrowLeft className="mr-1 h-4 w-4" />
                  <span>RFQ 목록으로 돌아가기</span>
                </Button>
              </Link>
            </div>
            <div className="space-y-0.5">
              {/* 4) 협력업체 정보가 있으면 코드 + 이름 + "상세 정보" 표기 */}
              <h2 className="text-2xl font-bold tracking-tight">
                {rfq
                  ? `${rfq.rfqCode ?? ""} | ${rfq.packageNo ?? ""} | ${rfq.packageName ?? ""}`
                  : "Loading RFQ..."}
              </h2>
         
              <p className="text-muted-foreground">
              PR발행 전 RFQ를 생성하여 관리하는 화면입니다.
              </p>
              <h3>Due Date:{rfq && rfq?.dueDate && <strong>{formatDate(rfq?.dueDate, "KR")}</strong>}</h3>
            </div>
            <Separator className="my-6" />
            <div className="flex flex-col space-y-8 lg:flex-row lg:space-x-12 lg:space-y-0">
            <aside className="lg:w-64 flex-shrink-0">
            <SidebarNav items={sidebarNavItems} />
              </aside>
              <div className="lg:w-[calc(100%-16rem)] overflow-auto">{children}</div>
              </div>
          </div>
        </section>
      </div>
    </>
  )
}